Ein neuer Debugger für Perl
Geschrieben von Léon Guy Louis Brocard
acme
Jesse V. kam zu Léon Brocard
sagte zu ihm "Jemand sollte einen neuen Debugger schreiben"
und gab ihm Bier
Manche Leute haben Angst vor dem eingebauten Debugger
Debugging mit print
ist mühsam
Devel::ebug bringt neue Buzzwords
und Kätzchen sind süß
1: perl -wc
Perl kompiliert die Datei
Lies die erste Fehlermeldung
Behebe den Fehler
Nochmal
1: warn "Ich bin hier ($i)" 2: $i++ 3: warn "Und jetzt hier ($i)";
Debugger für arme Leute
... aber er funktioniert
Warnings ausstreuen, die Variablen ausgeben
Ablauf verstehen, reparieren
Warnings entfernen
perl5db.pl
Der eingebaute Perl debugger
perl -d -e1
Konsolenprogramm
Ein mächtiger Dinosaurier
Neuntausendvierhundertachtundzwanzig Zeilen
... macht Perl Programmiern Angst
... macht perl
Programmiern Angst
Here begins the unreadable code. It needs fixing
XXX This looks like a bug to me
Why copy everything into @ARGS
and then futz with @args
?
XXX I have no idea what this is doing. Yet.
ptkdb.pl
Tk-basierter Debugger
Nettes GUI
Braucht Tk
Devel::ebug
Perl und GUIs sind schwierig zusammen zu bekommen
Moment mal!
Das Web ist das neue GUI
perl -d:ebug
... hat Tests
... hat Plugins
... ist konsolenbasiert
ebug_http.pl
Kleiner Webserver
... startet das Programm
... und bietet ein Web-Frontend
... braucht Catalyst
276 Zeilen
Einzelschritt, Nächste Zeile, Return, Run
Variablenauswertung
Breakpoints
Watchpoints
Stacktrace
Undo!
Konsole: Manuell starten http://localhost:8080/
1: my $q = 1; 2: my $w = 2; 3: my $e = add($q, $w); 4: $e++; 5: $e++; 6: 7: print "$e\n"; 8: 9: sub add { 10: my ($z,$x) = @_; 11: my $c = $z + $x; 12: return $c; 13: }
Ich benutze warn
und print
.
Fragen?